import axios from 'axios'
import {ElMessage} from 'element-plus'
import router from "@/router/index.js";
import {loginAuth} from "@/tool/commonFun.js";


axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例
const service = axios.create({
    // axios中请求配置有baseURL选项，表示请求URL公共部分
    baseURL: '/api',
    // 超时
    timeout: 10000,
})


// 请求拦截器
service.interceptors.request.use(config => {
    const token = localStorage.getItem('token')
    config.headers['Authorization'] = token || "where is my token?" // 让每个请求携带自定义token 请根据实际情况自行修改
    return config
    // 在发送请求之前做些什么
})

// 响应拦截器
service.interceptors.response.use(res => {
        if (res.headers['content-type'] === 'image/jpeg') {
            return res.data
        }
        const data = res.data;
        // 你可以在这里进行一些数据转换或者处理
        // 例如，统一处理HTTP状态码或消息
        if (data.code === 200) {
            // 处理成功的响应
            return data;
        }

        switch (data.code){
            case 501:{
                ElMessage({message: data.msg, type: 'error'});
                localStorage.removeItem('token')
                localStorage.removeItem('healthUser')
                break
            }
            case 502:{
                router.push({name:'Error'})
            }
            default:{
                ElMessage({message: data.msg, type: 'error'});
            }
        }

        return Promise.reject(new Error(data.msg));

    }, error => {
        console.log(error)
        ElMessage({message: error.response.data.message||'服务器连接失败', type: 'error'});
        return Promise.reject(error.response.data.message)
    }
)

export default service